<!DOCTYPE html>
<html lang="en">
<head>
    
    <meta charset="utf-8">
    <title>parser/utter - Zero Extension框架专用前端文档</title>
    
    <meta name="description" content="前端开发框架，官方地址：http://www.vertx-ui.cn" />
    
        <meta name="keywords" content="zero,zero-extension,vert.x" />
        <meta name="keyword" content="zero,zero-extension,vert.x" />
    
    
    
    <script src="scripts/prettify/prettify.js"></script>
    <script src="scripts/prettify/lang-css.js"></script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
    <link type="text/css" rel="stylesheet" href="styles/zero.css">
    <script src="scripts/nav.js" defer></script>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>

<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
  <div class="navicon"></div>
</label>

<label for="nav-trigger" class="overlay"></label>

<nav >
    
    <input type="text" id="nav-search" placeholder="Search" />
    
    <h2><a href="index.html">Home</a></h2><h2><a href="http://www.vertx-cloud.cn/document/doc-web/index.html" target="_blank" class="menu-item" id="website_link" >Zero云平台白皮书</a></h2><h2><a href="http://www.vertxai.cn/document/doc-web/index.html" target="_blank" class="menu-item" id="website_link" >Zero AI 工具箱</a></h2><h2><a href="http://www.vertxui.cn/document/doc-web/zui/index.html" target="_blank" class="menu-item" id="website_link" >Zero UI 标准包API</a></h2><h2><a href="http://www.vertxui.cn/document/doc-web/zextension/index.html" target="_blank" class="menu-item" id="website_link" >Zero UI 扩展包API</a></h2><h2><a href="http://www.vertxui.cn" target="_blank" class="menu-item" id="website_link" >Zero UI 官方站点</a></h2><h2><a href="http://www.vertxai.cn" target="_blank" class="menu-item" id="website_link" >Zero AI 官方站点</a></h2><h2><a href="http://www.vertxup.cn" target="_blank" class="menu-item" id="website_link" >Zero Framework 官方站点</a></h2><h2><a href="http://www.origin-x.cn" target="_blank" class="menu-item" id="website_link" >我的KB小站</a></h2><h3>Classes</h3><ul><li><a href="I.html">I</a><ul class='methods'><li data-type='method'><a href="I.html#.action">action</a></li><li data-type='method'><a href="I.html#.apis">apis</a></li><li data-type='method'><a href="I.html#.app">app</a></li><li data-type='method'><a href="I.html#.application">application</a></li><li data-type='method'><a href="I.html#.attributes">attributes</a></li><li data-type='method'><a href="I.html#.authorize">authorize</a></li><li data-type='method'><a href="I.html#.category">category</a></li><li data-type='method'><a href="I.html#.company">company</a></li><li data-type='method'><a href="I.html#.control">control</a></li><li data-type='method'><a href="I.html#.forest">forest</a></li><li data-type='method'><a href="I.html#.form">form</a></li><li data-type='method'><a href="I.html#.forms">forms</a></li><li data-type='method'><a href="I.html#.inited">inited</a></li><li data-type='method'><a href="I.html#.jobResume">jobResume</a></li><li data-type='method'><a href="I.html#.jobStart">jobStart</a></li><li data-type='method'><a href="I.html#.jobStop">jobStop</a></li><li data-type='method'><a href="I.html#.jobs">jobs</a></li><li data-type='method'><a href="I.html#.lists">lists</a></li><li data-type='method'><a href="I.html#.login">login</a></li><li data-type='method'><a href="I.html#.logout">logout</a></li><li data-type='method'><a href="I.html#.menus">menus</a></li><li data-type='method'><a href="I.html#.mission">mission</a></li><li data-type='method'><a href="I.html#.module">module</a></li><li data-type='method'><a href="I.html#.ops">ops</a></li><li data-type='method'><a href="I.html#.page">page</a></li><li data-type='method'><a href="I.html#.password">password</a></li><li data-type='method'><a href="I.html#.profile">profile</a></li><li data-type='method'><a href="I.html#.relation">relation</a></li><li data-type='method'><a href="I.html#.relationDelete">relationDelete</a></li><li data-type='method'><a href="I.html#.relationSave">relationSave</a></li><li data-type='method'><a href="I.html#.tabular">tabular</a></li><li data-type='method'><a href="I.html#.todo">todo</a></li><li data-type='method'><a href="I.html#.token">token</a></li><li data-type='method'><a href="I.html#.uri">uri</a></li><li data-type='method'><a href="I.html#.user">user</a></li><li data-type='method'><a href="I.html#.visitor">visitor</a></li></ul></li><li><a href="X6.html">X6</a></li><li><a href="utter.Refuse.html">Refuse</a></li></ul><h3>Modules</h3><ul><li><a href="module-config_utter.html">config/utter</a><ul class='methods'><li data-type='method'><a href="module-config_utter.html#.configClick">configClick</a></li><li data-type='method'><a href="module-config_utter.html#.configColumn">configColumn</a></li><li data-type='method'><a href="module-config_utter.html#.configDialog">configDialog</a></li><li data-type='method'><a href="module-config_utter.html#.configGrid">configGrid</a></li><li data-type='method'><a href="module-config_utter.html#.configRelation">configRelation</a></li></ul></li><li><a href="module-constant_utter.html">constant/utter</a><ul class='members'><li data-type='member'><a href="module-constant_utter.html#.Flow">Flow</a></li><li data-type='member'><a href="module-constant_utter.html#.K">K</a></li><li data-type='member'><a href="module-constant_utter.html#.Mode">Mode</a></li><li data-type='member'><a href="module-constant_utter.html#.Opt">Opt</a></li><li data-type='member'><a href="module-constant_utter.html#.Order">Order</a></li><li data-type='member'><a href="module-constant_utter.html#.PLUGIN">PLUGIN</a></li><li data-type='member'><a href="module-constant_utter.html#.V">V</a></li></ul></li><li><a href="module-driven_upper.html">driven/upper</a><ul class='methods'><li data-type='method'><a href="module-driven_upper.html#.acCriteria">acCriteria</a></li><li data-type='method'><a href="module-driven_upper.html#.etParallel">etParallel</a></li><li data-type='method'><a href="module-driven_upper.html#.etPure">etPure</a></li><li data-type='method'><a href="module-driven_upper.html#.etSequence">etSequence</a></li><li data-type='method'><a href="module-driven_upper.html#.etUniform">etUniform</a></li><li data-type='method'><a href="module-driven_upper.html#.rxChannel">rxChannel</a></li></ul></li><li><a href="module-fixed_upper.html">fixed/upper</a><ul class='members'><li data-type='member'><a href="module-fixed_upper.html#.Jsx">Jsx</a></li><li data-type='member'><a href="module-fixed_upper.html#.Op">Op</a></li></ul></li><li><a href="module-hoc_upper.html">hoc/upper</a><ul class='methods'><li data-type='method'><a href="module-hoc_upper.html#.designer">designer</a></li><li data-type='method'><a href="module-hoc_upper.html#.dialog">dialog</a></li><li data-type='method'><a href="module-hoc_upper.html#.form">form</a></li><li data-type='method'><a href="module-hoc_upper.html#.init">init</a></li></ul></li><li><a href="module-in_utter.html">in/utter</a><ul class='methods'><li data-type='method'><a href="module-in_utter.html#.inApi">inApi</a></li><li data-type='method'><a href="module-in_utter.html#.inJob">inJob</a></li><li data-type='method'><a href="module-in_utter.html#.inSettlement">inSettlement</a></li></ul></li><li><a href="module-kin_unfold.html">kin/unfold</a><ul class='methods'><li data-type='method'><a href="module-kin_unfold.html#.kinComponent">kinComponent</a></li><li data-type='method'><a href="module-kin_unfold.html#.kinDoSearch">kinDoSearch</a></li><li data-type='method'><a href="module-kin_unfold.html#.kinForm">kinForm</a></li><li data-type='method'><a href="module-kin_unfold.html#.kinTChange">kinTChange</a></li><li data-type='method'><a href="module-kin_unfold.html#.kinTRow">kinTRow</a></li><li data-type='method'><a href="module-kin_unfold.html#.kinUp">kinUp</a></li></ul></li><li><a href="module-map_utter.html">map/utter</a><ul class='methods'><li data-type='method'><a href="module-map_utter.html#.mapAsyncDatum">mapAsyncDatum</a></li><li data-type='method'><a href="module-map_utter.html#.mapMeta">mapMeta</a></li><li data-type='method'><a href="module-map_utter.html#.mapUri">mapUri</a></li></ul></li><li><a href="module-on_upper.html">on/upper</a><ul class='methods'><li data-type='method'><a href="module-on_upper.html#.onOp">onOp</a></li></ul></li><li><a href="module-on_utter.html">on/utter</a><ul class='methods'><li data-type='method'><a href="module-on_utter.html#.onApp">onApp</a></li><li data-type='method'><a href="module-on_utter.html#.onRelation">onRelation</a></li><li data-type='method'><a href="module-on_utter.html#.onRelationIdentifiers">onRelationIdentifiers</a></li><li data-type='method'><a href="module-on_utter.html#.onRelationType">onRelationType</a></li><li data-type='method'><a href="module-on_utter.html#.onTree">onTree</a></li></ul></li><li><a href="module-parser_utter.html">parser/utter</a><ul class='methods'><li data-type='method'><a href="module-parser_utter.html#.parserOfButton">parserOfButton</a></li><li data-type='method'><a href="module-parser_utter.html#.parserOfColor">parserOfColor</a></li><li data-type='method'><a href="module-parser_utter.html#.parserOfEvent">parserOfEvent</a></li></ul></li><li><a href="module-pu_unfold.html">pu/unfold</a><ul class='methods'><li data-type='method'><a href="module-pu_unfold.html#.puControl">puControl</a></li></ul></li><li><a href="module-qr_utter.html">qr/utter</a><ul class='methods'><li data-type='method'><a href="module-qr_utter.html#.irViewAt">irViewAt</a></li><li data-type='method'><a href="module-qr_utter.html#.irViewQ">irViewQ</a></li><li data-type='method'><a href="module-qr_utter.html#.irViewV">irViewV</a></li></ul></li><li><a href="module-rs_utter.html">rs/utter</a><ul class='methods'><li data-type='method'><a href="module-rs_utter.html#.rsOpened">rsOpened</a></li></ul></li><li><a href="module-rx_utter.html">rx/utter</a><ul class='methods'><li data-type='method'><a href="module-rx_utter.html#.rxAssist">rxAssist</a></li><li data-type='method'><a href="module-rx_utter.html#.rxBatchDelete">rxBatchDelete</a></li><li data-type='method'><a href="module-rx_utter.html#.rxBatchEdit">rxBatchEdit</a></li><li data-type='method'><a href="module-rx_utter.html#.rxClose">rxClose</a></li><li data-type='method'><a href="module-rx_utter.html#.rxColumn">rxColumn</a></li><li data-type='method'><a href="module-rx_utter.html#.rxColumnMy">rxColumnMy</a></li><li data-type='method'><a href="module-rx_utter.html#.rxDelete">rxDelete</a></li><li data-type='method'><a href="module-rx_utter.html#.rxExport">rxExport</a></li><li data-type='method'><a href="module-rx_utter.html#.rxImport">rxImport</a></li><li data-type='method'><a href="module-rx_utter.html#.rxMyViewQ">rxMyViewQ</a></li><li data-type='method'><a href="module-rx_utter.html#.rxMyViewV">rxMyViewV</a></li><li data-type='method'><a href="module-rx_utter.html#.rxPostClose">rxPostClose</a></li><li data-type='method'><a href="module-rx_utter.html#.rxPostOpen">rxPostOpen</a></li><li data-type='method'><a href="module-rx_utter.html#.rxQr">rxQr</a></li><li data-type='method'><a href="module-rx_utter.html#.rxQrClean">rxQrClean</a></li><li data-type='method'><a href="module-rx_utter.html#.rxQrQBE">rxQrQBE</a></li><li data-type='method'><a href="module-rx_utter.html#.rxRowOpen">rxRowOpen</a></li><li data-type='method'><a href="module-rx_utter.html#.rxSearch">rxSearch</a></li><li data-type='method'><a href="module-rx_utter.html#.rxSelected">rxSelected</a></li><li data-type='method'><a href="module-rx_utter.html#.rxTabAdd">rxTabAdd</a></li><li data-type='method'><a href="module-rx_utter.html#.rxTabClose">rxTabClose</a></li><li data-type='method'><a href="module-rx_utter.html#.rxTabEdit">rxTabEdit</a></li><li data-type='method'><a href="module-rx_utter.html#.rxTabOpen">rxTabOpen</a></li><li data-type='method'><a href="module-rx_utter.html#.rxView">rxView</a></li><li data-type='method'><a href="module-rx_utter.html#.rxViewQ">rxViewQ</a></li><li data-type='method'><a href="module-rx_utter.html#.rxViewV">rxViewV</a></li></ul></li><li><a href="module-secure_upper.html">secure/upper</a><ul class='members'><li data-type='member'><a href="module-secure_upper.html#.aclE">aclE</a></li></ul><ul class='methods'><li data-type='method'><a href="module-secure_upper.html#.aclChildUp">aclChildUp</a></li><li data-type='method'><a href="module-secure_upper.html#.aclIn">aclIn</a></li><li data-type='method'><a href="module-secure_upper.html#.aclOut">aclOut</a></li><li data-type='method'><a href="module-secure_upper.html#.aclRegionInit">aclRegionInit</a></li><li data-type='method'><a href="module-secure_upper.html#.aclRoute">aclRoute</a></li></ul></li><li><a href="module-sex_utter.html">sex/utter</a><ul class='methods'><li data-type='method'><a href="module-sex_utter.html#.sexExAction">sexExAction</a></li><li data-type='method'><a href="module-sex_utter.html#.sexExPlugin">sexExPlugin</a></li></ul></li><li><a href="module-to_utter.html">to/utter</a><ul class='methods'><li data-type='method'><a href="module-to_utter.html#.toDialog">toDialog</a></li><li data-type='method'><a href="module-to_utter.html#.toFontSize">toFontSize</a></li><li data-type='method'><a href="module-to_utter.html#.toIdentifier">toIdentifier</a></li><li data-type='method'><a href="module-to_utter.html#.toModelId">toModelId</a></li><li data-type='method'><a href="module-to_utter.html#.toNamespace">toNamespace</a></li></ul></li><li><a href="module-uca_extension.html">uca/extension</a><ul class='methods'><li data-type='method'><a href="module-uca_extension.html#.*DxSider">*DxSider</a></li><li data-type='method'><a href="module-uca_extension.html#.*ExAction">*ExAction</a></li><li data-type='method'><a href="module-uca_extension.html#.*ExButton">*ExButton</a></li><li data-type='method'><a href="module-uca_extension.html#.*ExDialog">*ExDialog</a></li><li data-type='method'><a href="module-uca_extension.html#.*ExEditorBatch">*ExEditorBatch</a></li><li data-type='method'><a href="module-uca_extension.html#.*ExEditorColumn">*ExEditorColumn</a></li><li data-type='method'><a href="module-uca_extension.html#.*ExEditorExport">*ExEditorExport</a></li><li data-type='method'><a href="module-uca_extension.html#.*ExEditorImport">*ExEditorImport</a></li><li data-type='method'><a href="module-uca_extension.html#.*ExNavigation">*ExNavigation</a></li><li data-type='method'><a href="module-uca_extension.html#.*ExSearch">*ExSearch</a></li><li data-type='method'><a href="module-uca_extension.html#.*ExSider">*ExSider</a></li><li data-type='method'><a href="module-uca_extension.html#.*IxChannel">*IxChannel</a></li><li data-type='method'><a href="module-uca_extension.html#.*IxDatabase">*IxDatabase</a></li><li data-type='method'><a href="module-uca_extension.html#.*IxDict">*IxDict</a></li><li data-type='method'><a href="module-uca_extension.html#.*IxIntegration">*IxIntegration</a></li><li data-type='method'><a href="module-uca_extension.html#.*IxMapping">*IxMapping</a></li><li data-type='method'><a href="module-uca_extension.html#.*IxRule">*IxRule</a></li><li data-type='method'><a href="module-uca_extension.html#.*IxService">*IxService</a></li><li data-type='method'><a href="module-uca_extension.html#.ExAccount">ExAccount</a></li><li data-type='method'><a href="module-uca_extension.html#.ExAdmin">ExAdmin</a></li><li data-type='method'><a href="module-uca_extension.html#.ExAdmin">ExAdmin</a></li><li data-type='method'><a href="module-uca_extension.html#.ExAdmin">ExAdmin</a></li><li data-type='method'><a href="module-uca_extension.html#.ExApps">ExApps</a></li><li data-type='method'><a href="module-uca_extension.html#.ExArbor">ExArbor</a></li><li data-type='method'><a href="module-uca_extension.html#.ExCategory">ExCategory</a></li><li data-type='method'><a href="module-uca_extension.html#.ExDeploy">ExDeploy</a></li><li data-type='method'><a href="module-uca_extension.html#.ExEntry">ExEntry</a></li><li data-type='method'><a href="module-uca_extension.html#.ExForm">ExForm</a></li><li data-type='method'><a href="module-uca_extension.html#.ExGraphicEditor">ExGraphicEditor</a></li><li data-type='method'><a href="module-uca_extension.html#.ExGraphicViewer">ExGraphicViewer</a></li><li data-type='method'><a href="module-uca_extension.html#.ExHistory">ExHistory</a></li><li data-type='method'><a href="module-uca_extension.html#.ExListComplex">ExListComplex</a></li><li data-type='method'><a href="module-uca_extension.html#.ExListOpen">ExListOpen</a></li><li data-type='method'><a href="module-uca_extension.html#.ExLogged">ExLogged</a></li><li data-type='method'><a href="module-uca_extension.html#.ExLogged">ExLogged</a></li><li data-type='method'><a href="module-uca_extension.html#.ExLogin">ExLogin</a></li><li data-type='method'><a href="module-uca_extension.html#.ExRecord">ExRecord</a></li><li data-type='method'><a href="module-uca_extension.html#.ExRegiment">ExRegiment</a></li><li data-type='method'><a href="module-uca_extension.html#.ExRelation">ExRelation</a></li><li data-type='method'><a href="module-uca_extension.html#.ExService">ExService</a></li><li data-type='method'><a href="module-uca_extension.html#.ExSubmit">ExSubmit</a></li><li data-type='method'><a href="module-uca_extension.html#.ExTab">ExTab</a></li><li data-type='method'><a href="module-uca_extension.html#.ExTabular">ExTabular</a></li><li data-type='method'><a href="module-uca_extension.html#.ExTrackField">ExTrackField</a></li><li data-type='method'><a href="module-uca_extension.html#.ExWizard">ExWizard</a></li><li data-type='method'><a href="module-uca_extension.html#.OxAnchor">OxAnchor</a></li><li data-type='method'><a href="module-uca_extension.html#.OxCard">OxCard</a></li><li data-type='method'><a href="module-uca_extension.html#.OxCategory">OxCategory</a></li><li data-type='method'><a href="module-uca_extension.html#.OxCi">OxCi</a></li><li data-type='method'><a href="module-uca_extension.html#.OxForm">OxForm</a></li><li data-type='method'><a href="module-uca_extension.html#.OxHistory">OxHistory</a></li><li data-type='method'><a href="module-uca_extension.html#.OxList">OxList</a></li><li data-type='method'><a href="module-uca_extension.html#.OxModule">OxModule</a></li><li data-type='method'><a href="module-uca_extension.html#.OxRelation">OxRelation</a></li><li data-type='method'><a href="module-uca_extension.html#.OxTab">OxTab</a></li><li data-type='method'><a href="module-uca_extension.html#.OxTopology">OxTopology</a></li></ul></li><li><a href="module-ui_upper.html">ui/upper</a><ul class='methods'><li data-type='method'><a href="module-ui_upper.html#.uiDialog">uiDialog</a></li><li data-type='method'><a href="module-ui_upper.html#.uiTab">uiTab</a></li></ul></li><li><a href="module-up_utter.html">up/utter</a><ul class='methods'><li data-type='method'><a href="module-up_utter.html#.upCondition">upCondition</a></li><li data-type='method'><a href="module-up_utter.html#.upList">upList</a></li><li data-type='method'><a href="module-up_utter.html#.upLoading">upLoading</a></li><li data-type='method'><a href="module-up_utter.html#.upQuery">upQuery</a></li><li data-type='method'><a href="module-up_utter.html#.upValue">upValue</a></li></ul></li><li><a href="module-ux_utter.html">ux/utter</a><ul class='methods'><li data-type='method'><a href="module-ux_utter.html#.mapFun">mapFun</a></li><li data-type='method'><a href="module-ux_utter.html#.toArray">toArray</a></li><li data-type='method'><a href="module-ux_utter.html#.toColor">toColor</a></li><li data-type='method'><a href="module-ux_utter.html#.toUri">toUri</a></li></ul></li><li><a href="module-v4_utter.html">v4/utter</a><ul class='methods'><li data-type='method'><a href="module-v4_utter.html#.a4MenuAt">a4MenuAt</a></li><li data-type='method'><a href="module-v4_utter.html#.a4MenuDash">a4MenuDash</a></li><li data-type='method'><a href="module-v4_utter.html#.a4MenuData">a4MenuData</a></li><li data-type='method'><a href="module-v4_utter.html#.a4MenuPick">a4MenuPick</a></li><li data-type='method'><a href="module-v4_utter.html#.a4MenuWeb">a4MenuWeb</a></li></ul></li><li><a href="module-web_upper.html">web/upper</a><ul class='methods'><li data-type='method'><a href="module-web_upper.html#.webAction">webAction</a></li><li data-type='method'><a href="module-web_upper.html#.webAnchor">webAnchor</a></li><li data-type='method'><a href="module-web_upper.html#.webTag">webTag</a></li></ul></li><li><a href="module-xui_utter.html">xui/utter</a><ul class='methods'><li data-type='method'><a href="module-xui_utter.html#.xuiContainer">xuiContainer</a></li><li data-type='method'><a href="module-xui_utter.html#.xuiDecorator">xuiDecorator</a></li><li data-type='method'><a href="module-xui_utter.html#.xuiGrid">xuiGrid</a></li></ul></li><li><a href="module-yi_unfold.html">yi/unfold</a><ul class='methods'><li data-type='method'><a href="module-yi_unfold.html#.yiProSetting">yiProSetting</a></li></ul></li><li><a href="module-yi_upper.html">yi/upper</a><ul class='methods'><li data-type='method'><a href="module-yi_upper.html#.yiCompany">yiCompany</a></li></ul></li><li><a href="module-yi_utter.html">yi/utter</a><ul class='methods'><li data-type='method'><a href="module-yi_utter.html#.yiAssist">yiAssist</a></li><li data-type='method'><a href="module-yi_utter.html#.yiColumn">yiColumn</a></li><li data-type='method'><a href="module-yi_utter.html#.yiCombine">yiCombine</a></li><li data-type='method'><a href="module-yi_utter.html#.yiContainer">yiContainer</a></li><li data-type='method'><a href="module-yi_utter.html#.yiControl">yiControl</a></li><li data-type='method'><a href="module-yi_utter.html#.yiListLazy">yiListLazy</a></li><li data-type='method'><a href="module-yi_utter.html#.yiListOp">yiListOp</a></li><li data-type='method'><a href="module-yi_utter.html#.yiListOptions">yiListOptions</a></li><li data-type='method'><a href="module-yi_utter.html#.yiListPlugin">yiListPlugin</a></li><li data-type='method'><a href="module-yi_utter.html#.yiListQuery">yiListQuery</a></li><li data-type='method'><a href="module-yi_utter.html#.yiListSynonym">yiListSynonym</a></li><li data-type='method'><a href="module-yi_utter.html#.yiListTab">yiListTab</a></li><li data-type='method'><a href="module-yi_utter.html#.yiListTable">yiListTable</a></li><li data-type='method'><a href="module-yi_utter.html#.yiListView">yiListView</a></li><li data-type='method'><a href="module-yi_utter.html#.yiModule">yiModule</a></li><li data-type='method'><a href="module-yi_utter.html#.yiPartForm">yiPartForm</a></li><li data-type='method'><a href="module-yi_utter.html#.yiStandard">yiStandard</a></li></ul></li><li><a href="module-yl_upper.html">yl/upper</a><ul class='methods'><li data-type='method'><a href="module-yl_upper.html#.ylCard">ylCard</a></li><li data-type='method'><a href="module-yl_upper.html#.ylDynamic">ylDynamic</a></li><li data-type='method'><a href="module-yl_upper.html#.ylTabExtra">ylTabExtra</a></li></ul></li><li><a href="module-yo_unfold.html">yo/unfold</a><ul class='methods'><li data-type='method'><a href="module-yo_unfold.html#.yoProChildren">yoProChildren</a></li><li data-type='method'><a href="module-yo_unfold.html#.yoProLayout">yoProLayout</a></li><li data-type='method'><a href="module-yo_unfold.html#.yoProPageHeader">yoProPageHeader</a></li><li data-type='method'><a href="module-yo_unfold.html#.yoProSettingDrawer">yoProSettingDrawer</a></li><li data-type='method'><a href="module-yo_unfold.html#.yoProWater">yoProWater</a></li></ul></li><li><a href="module-yo_upper.html">yo/upper</a><ul class='methods'><li data-type='method'><a href="module-yo_upper.html#.outApi">outApi</a></li><li data-type='method'><a href="module-yo_upper.html#.outJob">outJob</a></li><li data-type='method'><a href="module-yo_upper.html#.yoDebt">yoDebt</a></li></ul></li><li></li><li><a href="module-yo_utter.html">yo/utter</a><ul class='methods'><li data-type='method'><a href="module-yo_utter.html#.yoAction">yoAction</a></li><li data-type='method'><a href="module-yo_utter.html#.yoAmbient">yoAmbient</a></li><li data-type='method'><a href="module-yo_utter.html#.yoAtomComponent">yoAtomComponent</a></li><li data-type='method'><a href="module-yo_utter.html#.yoAtomContainer">yoAtomContainer</a></li><li data-type='method'><a href="module-yo_utter.html#.yoComponent">yoComponent</a></li><li data-type='method'><a href="module-yo_utter.html#.yoContainer">yoContainer</a></li><li data-type='method'><a href="module-yo_utter.html#.yoControl">yoControl</a></li><li data-type='method'><a href="module-yo_utter.html#.yoDialog">yoDialog</a></li><li data-type='method'><a href="module-yo_utter.html#.yoDynamic">yoDynamic</a></li><li data-type='method'><a href="module-yo_utter.html#.yoExtension">yoExtension</a></li><li data-type='method'><a href="module-yo_utter.html#.yoFilter">yoFilter</a></li><li data-type='method'><a href="module-yo_utter.html#.yoForm">yoForm</a></li><li data-type='method'><a href="module-yo_utter.html#.yoFormAdd">yoFormAdd</a></li><li data-type='method'><a href="module-yo_utter.html#.yoFormEdit">yoFormEdit</a></li><li data-type='method'><a href="module-yo_utter.html#.yoGrid">yoGrid</a></li><li data-type='method'><a href="module-yo_utter.html#.yoListBatch">yoListBatch</a></li><li data-type='method'><a href="module-yo_utter.html#.yoListExtra">yoListExtra</a></li><li data-type='method'><a href="module-yo_utter.html#.yoListGrid">yoListGrid</a></li><li data-type='method'><a href="module-yo_utter.html#.yoListOpen">yoListOpen</a></li><li data-type='method'><a href="module-yo_utter.html#.yoListSearch">yoListSearch</a></li><li data-type='method'><a href="module-yo_utter.html#.yoPolymorphism">yoPolymorphism</a></li><li data-type='method'><a href="module-yo_utter.html#.yoQrCond">yoQrCond</a></li><li data-type='method'><a href="module-yo_utter.html#.yoQrQBE">yoQrQBE</a></li><li data-type='method'><a href="module-yo_utter.html#.yoQrTag">yoQrTag</a></li><li data-type='method'><a href="module-yo_utter.html#.yoRender">yoRender</a></li><li data-type='method'><a href="module-yo_utter.html#.yoTabPage">yoTabPage</a></li><li data-type='method'><a href="module-yo_utter.html#.yoTplAccount">yoTplAccount</a></li><li data-type='method'><a href="module-yo_utter.html#.yoTplHeader">yoTplHeader</a></li><li data-type='method'><a href="module-yo_utter.html#.yoTplNavigation">yoTplNavigation</a></li><li data-type='method'><a href="module-yo_utter.html#.yoTplSider">yoTplSider</a></li></ul></li><li><a href="module-yu_utter.html">yu/utter</a><ul class='methods'><li data-type='method'><a href="module-yu_utter.html#.yuContainer">yuContainer</a></li><li data-type='method'><a href="module-yu_utter.html#.yuRouter">yuRouter</a></li></ul></li></ul><h3>Global</h3><ul><li><a href="global.html#@ox">@ox</a></li></ul>
</nav>

<div id="main">
    
    <h1 class="page-title">parser/utter</h1>
    

    




<section>

<header>
    
</header>

<article>
    
        <div class="container-overview">
        
            

<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>




            
                <div class="description usertext"><h1>扩展底座：解析器</h1>
<hr/></div>
            

            
        
        </div>
    

    

    

    
    
    

     

    

    

    
        <h3 class="subsection-title">Methods</h3>

        
            

    

    <h4 class="name" id=".parserOfButton"><span class="type-signature">(static) </span>parserOfButton<span class="signature">(reference)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「解析」<code>Ex.parserOfButton</code></h2>
<h3>1. 基本介绍</h3>
<p>生成按钮专用解析器，返回对象结构如（每个键都是函数）：</p>
<pre class="prettyprint source lang-js"><code>{
    parsePlugin: () => &quot;按钮插件解析函数&quot;,
    parseComponent: () => &quot;组件解析函数&quot;,
    parseControl: () => &quot;按钮本身解析函数，解析不同组件专用，LIST, FORM 不同&quot;,
    parseOp: () => &quot;解析按钮本身专用方法&quot;,
}
</code></pre>
<table>
<thead>
<tr>
<th style="text-align:left">函数名</th>
<th>异步</th>
<th>同步</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">parsePlugin</td>
<td>o</td>
<td>o</td>
<td style="text-align:left">插件解析专用。</td>
</tr>
<tr>
<td style="text-align:left">parseComponent</td>
<td>o</td>
<td>o</td>
<td style="text-align:left">组件解析专用。</td>
</tr>
<tr>
<td style="text-align:left">parseControl</td>
<td>o</td>
<td>o</td>
<td style="text-align:left">控件解析专用。</td>
</tr>
<tr>
<td style="text-align:left">parseOp</td>
<td>o</td>
<td>x</td>
<td style="text-align:left">操作按钮解析专用。</td>
</tr>
</tbody>
</table>
<h3>2. 子函数解析</h3>
<h4>2.1. parsePlugin（解析Object）</h4>
<p><strong>入参表</strong></p>
<table>
<thead>
<tr>
<th style="text-align:left">参数名</th>
<th>类型</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">buttons</td>
<td>Object</td>
<td style="text-align:left">全按钮配置，<code>key = Object</code>结构。</td>
</tr>
<tr>
<td style="text-align:left">options</td>
<td>Object</td>
<td style="text-align:left">列表/组件的专用配置<code>options</code>结构。</td>
</tr>
<tr>
<td style="text-align:left">async</td>
<td>Boolean</td>
<td style="text-align:left">是否执行异步模式。</td>
</tr>
</tbody>
</table>
<p>插件解析主要处理<code>Object</code>的按钮专用，处理每个元素（Object类型）的配置信息，它用来处理按钮的某些功能。
button元素中有关此函数的数据结构如下：</p>
<pre class="prettyprint source lang-js"><code>{
    plugin:{
        tooltip: &quot;...&quot;,
        confirm: &quot;...&quot;,
        prompt: &quot;...&quot;,
        connect: &quot;...&quot;,
        message: &quot;...&quot;
    }
}
</code></pre>
<p><strong>配置项</strong></p>
<table>
<thead>
<tr>
<th style="text-align:left">配置项</th>
<th>类型</th>
<th style="text-align:left">表达式</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">tooltip</td>
<td>Boolean</td>
<td style="text-align:left"></td>
<td style="text-align:left">启用tooltip功能，直接设置<code>tooltip=true</code>来打开<code>&lt;Tooltip/&gt;</code>，按钮外围浮游提示信息。</td>
</tr>
<tr>
<td style="text-align:left">confirm</td>
<td>String</td>
<td style="text-align:left">options[confirm]</td>
<td style="text-align:left">执行<code>Modal.confirm</code>功能，弹出提示框确认/取消。</td>
</tr>
<tr>
<td style="text-align:left">prompt</td>
<td>String</td>
<td style="text-align:left">options[prompt]</td>
<td style="text-align:left">实现浮游提示确认/取消框。</td>
</tr>
<tr>
<td style="text-align:left">connect</td>
<td>String</td>
<td style="text-align:left">options[connect]</td>
<td style="text-align:left">配置被链接的操作元素ID，最终会调用<code>Ux.connectId</code>触发该元素的onClick事件。</td>
</tr>
<tr>
<td style="text-align:left">message</td>
<td>String</td>
<td style="text-align:left">options[message]</td>
<td style="text-align:left">需要使用的文本信息。</td>
</tr>
</tbody>
</table>
<h4>2.2. parseComponent（解析Object）</h4>
<p><strong>入参表</strong></p>
<table>
<thead>
<tr>
<th style="text-align:left">参数名</th>
<th>类型</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">buttons</td>
<td>Object</td>
<td style="text-align:left">全按钮配置，<code>key = Object</code>结构。</td>
</tr>
<tr>
<td style="text-align:left">options</td>
<td>Object</td>
<td style="text-align:left">列表/组件的专用配置<code>options</code>结构。</td>
</tr>
<tr>
<td style="text-align:left">component</td>
<td>Object</td>
<td style="text-align:left">动态组件配置信息。</td>
</tr>
<tr>
<td style="text-align:left">async</td>
<td>Boolean</td>
<td style="text-align:left">是否执行异步模式。</td>
</tr>
</tbody>
</table>
<p>组件解析主要处理<code>Object</code>中按钮配置专用，<code>component</code>（第三参）中的结构如：</p>
<pre class="prettyprint source lang-js"><code>{
    plugin: &quot;Jsx元素集合，里面包含了所有可读取的组件信息。&quot;,
    config: &quot;Jsx元素所需的配置数据。&quot;
}

// 抽取配置代码如下
const Jsx = components.plugin;
const config = components.config;
</code></pre>
<blockquote>
<p>只有<code>plugin</code>和<code>config</code>有值或存在时才执行解析流程！！</p>
</blockquote>
<p>按钮配置中会存在如下数据结构：</p>
<pre class="prettyprint source lang-js"><code>{
    plugin: {
        componentType: &quot;&quot;,
        component: &quot;&quot;
    }
}
</code></pre>
<p><strong>配置项</strong></p>
<table>
<thead>
<tr>
<th style="text-align:left">配置项</th>
<th>类型</th>
<th style="text-align:left">表达式</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">componentType</td>
<td>String</td>
<td style="text-align:left">Jsx[componentType]</td>
<td style="text-align:left">用于读取Jsx元素</td>
</tr>
<tr>
<td style="text-align:left">component</td>
<td>String</td>
<td style="text-align:left">config</td>
<td style="text-align:left">component]</td>
</tr>
</tbody>
</table>
<p>注入完成了组件的Jsx元素和配置数据过后，就会调用<code>_parseContainer</code>方法执行外层容器元素信息，容器元素
主要由按钮元素的plugin决定：</p>
<pre class="prettyprint source lang-js"><code>{
    plugin:{
        window: &quot;弹出窗口&quot;,
        popover: &quot;浮游窗口&quot;,
        drawer: &quot;抽屉窗口&quot;
    }
}
</code></pre>
<p>构造的配置数据结构如下：</p>
<pre class="prettyprint source lang-js"><code>{
    type: &quot;窗口类型&quot;,
    dialog: &quot;解析的窗口配置&quot;
}
</code></pre>
<p>完整配置表格如下：</p>
<table>
<thead>
<tr>
<th style="text-align:left">待解析节点</th>
<th>生成type</th>
<th style="text-align:left">调用函数生成dialog</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">window</td>
<td>WINDOW</td>
<td style="text-align:left">Ux.aiExprWindow</td>
</tr>
<tr>
<td style="text-align:left">popover</td>
<td>POPOVER</td>
<td style="text-align:left">Ux.aiExprPopover</td>
</tr>
<tr>
<td style="text-align:left">drawer</td>
<td>DRAWER</td>
<td style="text-align:left">Ux.aiExprDrawer</td>
</tr>
<tr>
<td style="text-align:left">三者都无</td>
<td>NONE</td>
<td style="text-align:left"><code>&lt;无dialog节点&gt;</code></td>
</tr>
</tbody>
</table>
<p>该函数最终生成的完整配置表如下：</p>
<pre class="prettyprint source lang-js"><code>{
    component: &quot;Jsx元素&quot;，
    config: &quot;组件配置数据&quot;,
    type: &quot;「容器」窗口类型&quot;,
    dialog: &quot;「容器」窗口配置&quot;
}
</code></pre>
<h4>2.3. parseControl（解析Array）</h4>
<p><strong>入参表</strong></p>
<table>
<thead>
<tr>
<th style="text-align:left">参数名</th>
<th>类型</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">config</td>
<td>Array</td>
<td style="text-align:left">控件配置队列。</td>
</tr>
<tr>
<td style="text-align:left">options</td>
<td>Object</td>
<td style="text-align:left">解析控件时的辅助配置信息。</td>
</tr>
<tr>
<td style="text-align:left">async</td>
<td>Boolean</td>
<td style="text-align:left">是否执行异步模式。</td>
</tr>
</tbody>
</table>
<p>该方法主要用于控件的动态配置，从远程读取<code>UI_CONTROL</code>表中的配置数据，再配合控件类型以及操作列表组合成最终用于
Jsx元素的控件属性相关信息。直接从第二参中读取<code>type</code>配置参数，该参数目前版本支持（<code>LIST</code>-列表配置，<code>FORM</code>-表单配置）。</p>
<p>第一个参数为<code>config</code>对象：</p>
<ol>
<li>「LIST」如果存在<code>config.options</code>，则可以为该对象注入<code>clientKey</code>的客户端配置。</li>
<li>「FORM」如果存在<code>config.form</code>，则重新构造<code>config.form.op</code>（该配置会影响表单中的操作，包括ACL信息），构造操作信息的同时，系统会构造<code>event</code>事件信息，并且注入到<code>config.event</code>中，该值会被<code>Fabric</code>引擎使用。</li>
</ol>
<h4>2.4. parseOp（解析Array）</h4>
<blockquote>
<p>该方法不带异步参数，不支持同步模式。</p>
</blockquote>
<p><strong>入参表</strong></p>
<table>
<thead>
<tr>
<th style="text-align:left">参数名</th>
<th>类型</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">config</td>
<td>Array</td>
<td style="text-align:left">按钮配置队列。</td>
</tr>
<tr>
<td style="text-align:left">options</td>
<td>Object</td>
<td style="text-align:left">解析操作时的辅助配置信息。</td>
</tr>
</tbody>
</table>
<p>该方法主要用于<code>ExListXX</code>组件解析组件操作用，目前执该流程的组件主要是：<code>ExListOpen / ExListComplex / ExListQuery</code>。</p>
<ol>
<li>先根据options中的配置<code>dynamic.op</code>进行分流操作，如果为true则直接远程读取按钮配置信息，如果为false则直接使用资源文件中的配置。</li>
<li>先执行基础按钮的规范化操作，包括带plugin的按钮配置解析操作。</li>
<li>执行完成后，追加<code>op.extension</code>的扩展按钮操作（options中以<code>op.extension</code>为前缀的选项）：
<ol>
<li>如果<code>op.config</code>中包含<code>executor</code>，则执行直接按钮扩展，从props的<code>$op</code>对象中构造（纯开发）。</li>
<li>如果<code>op.config</code>中只包含<code>connectId</code>属性，则该按钮操作直接绑定onClick生成<code>Ux.connectId</code>的锚点。</li>
</ol>
</li>
</ol>
<p><code>op.extension</code>扩展配置片段如：</p>
<pre class="prettyprint source lang-json"><code>     &quot;op.extension.confirm&quot;: {
         &quot;text&quot;: &quot;确认单据&quot;,
         &quot;icon&quot;: &quot;checked&quot;,
         &quot;className&quot;: &quot;uc_pink&quot;,
         &quot;region&quot;: &quot;op.tab.confirm&quot;,
         &quot;plugin&quot;: {
             &quot;tooltip&quot;: true
         },
         &quot;config&quot;: {
             &quot;connectId&quot;: &quot;$opFinish&quot;,
             &quot;index&quot;: 1
         }
     },
</code></pre>
<p>关于扩展按钮的解析最终会调用<code>yoExtension</code>内置函数（不开放）执行解析，该函数的逻辑会在<code>yo</code>方法中说明，
上述规范化操作完成后，整个按钮部分的配置程序就执行完成，规范化的结果会存储在state中。</p>
<h3>3. 总结</h3>
<p><code>parserOfButton</code>方法执行后，会生成一个带四个子函数的核心对象，这四个子函数主要做按钮级别的配置规范化操作。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React对应组件引用</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        


<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".parserOfColor"><span class="type-signature">(static) </span>parserOfColor<span class="signature">(name)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「解析」<code>Ex.parserOfColor</code></h2>
<h3>1. 基本介绍</h3>
<p>生产日志器专用解析器，返回不同日志器记录日志（每个键都是函数）：</p>
<pre class="prettyprint source lang-js"><code>{
    private: () => &quot;私有组件&quot;,
    form: () => &quot;表单组件&quot;,
    list: () => &quot;列表专用&quot;,
    action: () => &quot;操作组件&quot;,
    tpl: () => &quot;模板&quot;,
    component: () => &quot;通用组件&quot;,
    container: () => &quot;容器组件&quot;,
    page: () => &quot;页面组件&quot;,
    type: () => &quot;分类处理&quot;,
    control: () => &quot;控件&quot;,
    dynamic: () => &quot;动态组件&quot;,
    view: () => &quot;视图组件&quot;,
    define: () => &quot;定义组件&quot;
}
</code></pre>
<h3>2. 日志函数作用规范</h3>
<table>
<thead>
<tr>
<th style="text-align:left">函数名</th>
<th style="text-align:left">日志组件</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">private</td>
<td style="text-align:left">私有组件。</td>
</tr>
<tr>
<td style="text-align:left">form</td>
<td style="text-align:left">表单组件专用<code>&lt;Form/&gt;</code>。</td>
</tr>
<tr>
<td style="text-align:left">list</td>
<td style="text-align:left">列表组件专用<code>&lt;ExListXXX/&gt;</code>。</td>
</tr>
<tr>
<td style="text-align:left">action</td>
<td style="text-align:left">操作按钮专用，通常在列表操作组件中使用。</td>
</tr>
<tr>
<td style="text-align:left">tpl</td>
<td style="text-align:left">模板组件专用。</td>
</tr>
<tr>
<td style="text-align:left">component</td>
<td style="text-align:left">公有组件专用。</td>
</tr>
<tr>
<td style="text-align:left">container</td>
<td style="text-align:left">容器组件专用。</td>
</tr>
<tr>
<td style="text-align:left">page</td>
<td style="text-align:left">页面组件专用。</td>
</tr>
<tr>
<td style="text-align:left">type</td>
<td style="text-align:left">「保留」分类组件专用。</td>
</tr>
<tr>
<td style="text-align:left">control</td>
<td style="text-align:left">自定义控件专用。</td>
</tr>
<tr>
<td style="text-align:left">dynamic</td>
<td style="text-align:left">动态组件专用。</td>
</tr>
<tr>
<td style="text-align:left">view</td>
<td style="text-align:left">视图组件专用。</td>
</tr>
<tr>
<td style="text-align:left">define</td>
<td style="text-align:left">自定义组件专用。</td>
</tr>
</tbody>
</table>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>name</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>组件名称</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        


<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".parserOfEvent"><span class="type-signature">(static) </span>parserOfEvent<span class="signature">(reference)</span><span class="type-signature"> &rarr; {*}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「解析」<code>Ex.parserOfEvent</code></h2>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
            </td>

            

            

            <td class="description last"></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        


<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">*</span>


    </dd>
</dl>

    



        
    

    

    
</article>

</section>




    
    
</div>

<br class="clear">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Thu Jun 22 2023 11:27:23 GMT+0800 (China Standard Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
</footer>

<script>prettyPrint();</script>
<script src="scripts/polyfill.js"></script>
<script src="scripts/linenumber.js"></script>

<script src="scripts/search.js" defer></script>



</body>
</html>